package com.tarena.lbs.activity.pojo.param;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.AccessLevel;
import lombok.Data;
import lombok.experimental.FieldDefaults;

import java.io.Serializable;
import java.util.List;

@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
public class ActivityAddParam implements Serializable {

    @Schema(description ="更新必填")
    Integer id;

    @Schema(description ="活动名称")
    String activityName;

    @NotEmpty(message = "开始时间不能为空")
    @Schema(description ="开始时间")
    String startDate;

    @NotEmpty(message = "截止时间不能为空")
    @Schema(description ="截止时间")
    String endDate;

    @NotEmpty(message = "活动说明不能为空")
    @Schema(description ="活动说明")
    String describes;

    @NotEmpty(message = "活动图片ID不能为空")
    @Schema(description ="活动图片ID逗号分割")
    String imgIds;

    @Schema(description ="店铺ID逗号分割")
    String shopIds;

    @NotEmpty(message = "活动人群ID不能为空")
    @Schema(description ="活动人群ID逗号分割")
    String targetCustomer;

    @NotEmpty(message = "活动目标不能为空")
    @Schema(description ="活动目标")
    String activityTarget;

    @NotNull(message = "投放渠道不能为空")
    @Schema(description ="投放渠道")
    Integer deliveryChannel;

    @NotNull(message = "优惠券ID不能为空")
    @Schema(description ="优惠券ID")
    Integer rewardCouponId;

    @NotEmpty(message = "活动分享标题不能为空")
    @Schema(description ="活动分享标题")
    String shareProfile;

    @NotEmpty(message = "优惠券ID不能为空")
    @Schema(description ="活动分享链接")
    String shareUrl;

    @Schema(description  = "营销配置")
    String activityJson;

    @NotNull(message = "自动化营销类型不能为空")
    @Schema(description  = "自动化营销类型")
    Integer marketingType;

    @Schema(description ="商家ID-前端忽略")
    Integer businessId;

    private String activityDesc;
    
    // 新增区域选择相关字段
    @Schema(description = "区域ID列表")
    private List<Long> areaIds;
    
    @Schema(description = "区域级别 1:省 2:市 3:区")
    private Integer areaLevel;
}